package functional.lambda;

import java.io.PrintStream;
import java.util.stream.Stream;

/**
 * Lambda 表达式：方法引用（Method Reference）中的特定对象的实例方法引用
 *
 * @author Liu Yicong
 * @date 2025/10/8
 */
public class MethodRefInstance {
	public static void main(String[] args) {
		// 假设我们有一个特定的 System.out 对象，我们希望对 Stream 中的每个元素执行它的 println 实例方法。
		// System.out 是 PrintStream 类型的特定对象
		PrintStream printStream = System.out;

		// 原始 Lambda 表达式
		Stream.of("a", "b", "c").forEach(s -> printStream.println(s));

		// 使用特定对象的实例方法引用
		Stream.of("a", "b", "c").forEach(printStream::println);
		// s 自动作为参数传入 System.out.println(s)
	}
}
